const { sequelizeConnection, Model, DataTypes } = require("../core/database");

class Article extends Model {}
Article.init(
  {
    // 文章ID
    id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
      autoIncrement: true,
    },
    // 文章标题，长度限制为100字符
    title: {
      type: DataTypes.STRING(100),
      allowNull: false,
      validate: {
        notEmpty: true,
      },
    },
    // 文章内容
    content: {
      type: DataTypes.TEXT, // 对于内容，使用 TEXT 类型，无需长度限制
      allowNull: false,
      validate: {
        notEmpty: true,
      },
    },
    // 是否发布
    published: {
      type: DataTypes.BOOLEAN,
      defaultValue: false,
    },
    // 文章作者，长度限制为50字符
    author: {
      type: DataTypes.STRING(50),
      allowNull: false,
    },
    // 文章摘要
    summary: {
      type: DataTypes.TEXT,
      allowNull: true,
    },
    // 文章分类
    category: {
      type: DataTypes.STRING(50), // 类别名通常不会太长
      allowNull: true,
    },
    // SEO 关键字
    seoKeywords: {
      type: DataTypes.STRING(100), // SEO 关键字字段，适当长度以容纳多个关键字
      allowNull: true,
    },
  }, 
  {
    // 其他模型参数
    sequelize: sequelizeConnection, // 传递连接实例
    modelName: "Article", // 定义模型名称(数据表名)
    timestamps: true, // 启用时间戳
    createdAt: "created_at", // 自定义创建时间字段名称
    updatedAt: "updated_at", // 自定义更新时间字段名称
  }
);
 


// 导出模型
module.exports = Article;